Date		:	12 septembre 1993
		Protection	:	MOT DE PASSE
		Programme	:       SPACE CRUSADE
		Outils		:	SOFT-ICE V2.50
		Fichier		:	?
		Temps pass�	:	20 minutes.
		Soci�t�		:	
		Divers	        :	Cod� avec RNC
		Origine		:	JKT
		Num�ro		:	223


	On tourne dans la boucle suivante tant que l'on ne tape pas ENTER:

	CS=0F78
	CS:95DB	E80D00		CALL	95EB    <ͻ
	CS:95DE	0AC0		OR	AL,AL     �
	CS:95E0 74F9		JZ	95DB	>ͼ
	CS:95E2 50		PUSH	AX     ET ON ARRIVE ICI SI ENTER...

	Le controle des chars. se fait ci-dessous. On place 0000 dans DS:4B75
	si tout est OK sinon on y laisse le 0001 d'origine.

	CS=0F78
	CS:B680 B90800		MOV	CX,0008	; 8 CHARS A CONTROLER.
	CS:B683	AC		LODSB           ; LA BOUCLE DE TEST.
	CS:B684	3A05		CMP	AL,[DI] ; ON COMPARE LES CHARS.
	CS:B686	750A		JNZ	B692	; SI PAS OK ON VA EN B692.
	CS:B688	47		INC	DI	; SUIVANT...
	CS:B689	E2F8		LOOP	B683	; ON BOUCLE.
	CS:B68B	C706754B0000	MOV	WORD PTR [4B75],0000 ; ICI SI OK.
	CS:B691 C3		RET		; ET ON S'EN VA...
	CS:B692 ....		....		; SUITE SI REPONSE MAUVAISE.

	Apr�s le RET on compare le contenu de 4B75 avec 0 et on saute ou pas...
	Pour le patch il suffit de remplacer le saut conditionnel en B686
	par un saut inconditionnel apr�s la boucle pour placer 0000 dans 4B75.
	Donc remplacer le mot 750A par EB03 en CS:B686.

	Soft-ice m'avait dit que la derni�re INT utilis�e �tait la 1C, mais
	en l'utilisant mon lanceur ne trouve pas le patch. En fait je
	m'aper�ois que le jeu d�tourne l'INT 1C d�s le d�but. Pas de pot...
	Je prends quelque chose de plus classique: l'INT 21 sf 3E et �a
	marche.

;       PATCH POUR LE PROGRAMME SPACE CRUSADE
;       DETOURNEMENT DE L'INT 21
;
;******************************************************************************
;                             ZONE A INITIALISER

adr_ip1         equ     0b686h  ; adresse dont le contenu est � modifier.
				; valeur directe.
anc_val         equ     0a75h   ; Valeur d'origine � rechercher. Invers�e.
nouv_val        equ     03EBh   ; Nouvelle valeur, JMP 
INT_DET         equ     21h     ; Le num�ro de l'INT que l'on veut utiliser.
sf		equ     3eh
BEEP_TONE       equ     440     ; Fr�quence de la note.
;******************************************************************************
; Cette partie omise est identique � tous mes lan�eurs...
;******************************************************************************
		db      55h,0aah        ; Identificateur de d�but.
chaine:         db      '��������FREDDY_SOFT!������Ŀ'
		db      '�                          �'
		db      '�      SPACE CRUSADE       �'
		db      "�  I hope you'll enjoy it  �"
		db      '�                          �'
		db      '��� Lan�eur Crypt� V1.1 ����'
mess_err        db      0ah,0dh,'Programme enfant non trouv�','$'
nom_prg         db      'space.exe',0,0,0,0    ; 12 car max + nul
chaine_fin:     db      0aah,55h               ; Identificateur de fin.
fin_init        label near

;----------------------- PLACE RESERVEE POUR LA PILE ------------------------

		dw 100 dup (' ')
fin             equ this byte       ; ici le sommet de la pile, SP.
seg_a           ends
		end     start